import api from '../core/api.js'
// 道具ID定义
const ITEM_ID = 'double_favor_card'

// 注册道具
async function registerItem() {
  try {
    // 先检查道具是否已存在
    const allItems = await api.getAllItems();
    if (allItems.some(item => item.id === ITEM_ID)) {
    //  console.log('好感度值双倍卡道具已存在，跳过注册');
      return;
    }

    await api.addItemInfo({
      id: ITEM_ID,
      name: '好感度值双倍卡',
      description: '使用后当天签到获得的好感度值翻倍',
      price: 50,
      type: 'consumable'
    })
    console.log('好感度值双倍卡道具已注册')
  } catch (err) {
    console.error('注册好感度值双倍卡道具失败:', err)
  }
}

// 导出注册函数供main.js调用
 export { registerItem }

// 导出函数供main.js使用
export default {
  // 检查并使用道具
  async checkAndUseDoubleFavorCard(userId) {
    // 检查用户是否拥有道具
    const userItems = await api.getUserItems(userId)
    const hasItem = userItems.some(item => item.id === ITEM_ID && item.count > 0)

    if (hasItem) {
      // 使用道具
      await api.reduceUserItem(userId, ITEM_ID)
      return true
    }
    return false
  },

  // 签到掉落道具
  async dropItemOnSignIn(userId) {
    // 掉落概率配置（20%）
    const dropRate = 0.2
    const random = Math.random()

    if (random <= dropRate) {
      await api.addUserItem(userId, ITEM_ID)
      return true
    }
    return false
  },

  // 获取道具ID
  getItemId() {
    return ITEM_ID
  }
}